Ok, so this should fix #3209 by using a full git revision as the name of the checkout path.
I don't fully understand the code here, and I haven't thought about backwards/forwards compatibility hard, but the approach should be viable, and maybe even the implementation here is OK?